100 research outputs found

    Session types revisited

    Get PDF
    Session types are a formalism used to model structured communication-based programming. A binary session type describes communication by specifying the type and direction of data exchanged between two parties. When session types and session processes are added to the syntax of standard π-calculus they give rise to additional separate syntactic categories. As a consequence, when new type features are added, there is duplication of effort in the theory: the proofs of properties must be checked both on standard types and on session types. We show that session types are encodable into standard π- types, relying on linear and variant types. Besides being an expressivity result, the encoding (i) removes the above redundancies in the syntax, and (ii) the properties of session types are derived as straightforward corollaries, exploiting the corresponding properties of standard π-types. The robustness of the encoding is tested on a few extensions of session types, including subtyping, polymorphism and higher-order communications

    A framework for deadlock detection in core ABS

    Get PDF
    We present a framework for statically detecting deadlocks in a concurrent object-oriented language with asynchronous method calls and cooperative scheduling of method activations. Since this language features recursion and dynamic resource creation, deadlock detection is extremely complex and state-of-the-art solutions either give imprecise answers or do not scale. In order to augment precision and scalability we propose a modular framework that allows several techniques to be combined. The basic component of the framework is a front-end inference algorithm that extracts abstract behavioural descriptions of methods, called contracts, which retain resource dependency information. This component is integrated with a number of possible different back-ends that analyse contracts and derive deadlock information. As a proof-of-concept, we discuss two such back-ends: (i) an evaluator that computes a fixpoint semantics and (ii) an evaluator using abstract model checking.Comment: Software and Systems Modeling, Springer Verlag, 201

    Actors may synchronize, safely! *

    Get PDF
    International audienceWe study deadlock detection in an actor model with wait-by-necessity synchronizations, a lightweight technique that synchronizes invocations when the corresponding values are strictly needed. This approach relies on the use of futures that are not given an explicit " Future " type. The approach we adopt allow the implicit synchronization on the availability of some value (where the producer of the value might be decided at runtime), whereas previous work allowed only explicit synchronization on the termination of a well-identified request. This way we are able to analyse the data-flow synchronization inherent to languages that feature wait-by-necessity. We provide a type-system and a solver inferring the type of a program so that deadlocks can be identified statically. As a consequence we can automatically verify the absence of deadlocks in actor programs with wait-by-necessity synchronizations

    Causal-consistent rollback in a tuple-based language

    Get PDF
    Rollback is a fundamental technique for ensuring reliability of systems, allowing one, in case of troubles, to recover a past system state. However, the definition of rollback in a concurrent/distributed scenario is quite tricky. We propose an approach based on the notion of causal-consistent reversibility: any given past action can be undone, provided that all the actions caused by it are undone as well. Given that, we define a rollback as the minimal causal-consistent sequence of backward steps able to undo a given action. We define the semantics of such a rollback operator, and show that it satisfies the above specification. The approach that we present is quite general, but we instantiate it in the case of muKlaim, a formal coordination language based on distributed tuple spaces. We remark that this is the first definition of causal-consistent rollback in a shared–memory setting. We illustrate the use of rollback in muKlaim on a simple, but realistic, application scenario

    Causal-Consistent Reversibility in a Tuple-Based Language

    Get PDF
    Causal-consistent reversibility is a natural way of undoing concurrent computations. We study causal-consistent reversibility in the context of µKlaim, a formal coordination language based on distributed tuple spaces. We consider both uncontrolled reversibility, suitable to study the basic properties of the reversibility mechanism, and controlled reversibility based on a rollback operator, more suitable for programming applications. The causality structure of the language, and thus the definition of its reversible semantics, differs from all the reversible languages in the literature because of its generative communication paradigm. In particular, the reversible behavior of µKlaim read primitive, reading a tuple without consuming it, cannot be matched using channel-based communication. We illustrate the reversible extensions of µKlaim on a simple, but realistic, application scenario

    An ecological survey of the invertebrate community at the epigean/hypogean interface

    Get PDF
    We studied the ecological continuum between caves and the associated network of fissures – Milieu Souterrain Superficiel (MSS) – in an hypogean site in the Graian Alps, Italy. Over one year, we surveyed the faunal assemblages by means of pitfall traps placed in the caves and specific subterranean sampling devices (SSD) buried in the MSS. We used generalized linear mixed models (GLMMs) and generalized additive mixed models (GAMMs) to compare the spatial and temporal dynamics of the subterranean invertebrates inhabiting the two environments. As expected, arthropod communities occurring near the surface were characterized by minor level of subterranean adaptations, and conversely, subterranean species were more abundant and diversified at higher depths, both in the caves and in the MSS. Diversity and abundance of external elements in the superficial layers were found to be highly seasonal dependent, with minor values in winter compared to the other seasons. We provided information about the faunal assemblages dwelling in the two hypogean compartments, and we characterized the microclimatic conditions therein. We discussed the existence of an ecological gradient of specialization extending from the surface to the deep hypogean layers, which can be interpreted in light of the microclimatic changes occurring at increasing depths and the parallel decrease in available organic matter
    • …
    corecore